#para usar as instrucoes neon tem que colocar as seguintes flags:
# -mfloat-abi=softfp,
# -mfpu=neon = especifica ponto flutuante para o neon
# -ftree-vectorize = otimizacao em arvore

# flags gerais
# -mtune=cortex-a8 = especifica o nome do processador ARM alvo para melhorar a performance.
# -mvectorize-with-neon-quad = vetorizar registradores quadword
# -flax-vector-conversions = conversao entre vetores de tamanhos diferentes

CC := gcc-4.9
SRC_DIR := src
OUTPUT := xLupaEmbedded
GTK_FLAGS := `pkg-config --cflags --libs gtk+-2.0`
V4L_FLAGS := -lv4l2
OPTIMIZATION_FLAGS := -O3 -ftree-vectorize -mcpu=cortex-a8 
NEON_FLAGS := -mfpu=neon -mtune=cortex-a8 -flax-vector-conversions
CFLAGS := $(GTK_FLAGS) $(V4L_FLAGS) -mfloat-abi=softfp $(OPTIMIZATION_FLAGS) $(NEON_FLAGS) 
DEBUG_FLAGS := 
LDFLAGS += -lpthread

OBJ = $(wildcard $(OBJ_DIR)/*.o)
SRC =  $(wildcard $(SRC_DIR)/*.c)
all:
	$(CC) $(SRC) $(CFLAGS) -o $(OUTPUT)

debug:
	$(call add_debug, )
	$(CC) $(SRC) $(CFLAGS) $(DEBUG_FLAGS) -o $(OUTPUT)
	$(call remove_debug, )
	


define add_debug
	#sed -i "s/#undef\ DEBUG/#define\ DEBUG/" src/debug.h
endef	

define remove_debug
	#sed -i "s/#define\ DEBUG/#undef\ DEBUG/" src/debug.h
endef
